package ru.niir.goodfil.utils.filters;

import ru.niir.goodfil.db.GoodfilUtils;

import java.sql.Date;
import java.util.Calendar;
import java.io.Serializable;

/**
 * Фильтр для работы с замещениями
 */
public class ReplacementsFilter implements Serializable
{
    /**
     * Идентификатор замещаемого менеджера
     */
    private long managerId = -1;

    /**
     * Идентификатор замещающего менеджера
     */
    private long assistanceId = -1;

    /**
     * Дата действия замещения
     */
    private Date date = GoodfilUtils.getCurrentDate();

    /**
     * Конструктор по-умолчанию
     */
    public ReplacementsFilter()
    {
    }

    /**
     * Конструктор
     * @param managerId идентификатор замещаемого менеджера
     * @param assistanceId идентификатор замещающего менеджера
     */
    public ReplacementsFilter(long managerId, long assistanceId)
    {
        this.managerId = managerId;
        this.assistanceId = assistanceId;
    }

    /**
     * Конструктор
     * @param managerId идентификатор замещаемого менеджера
     * @param assistanceId идентификатор замещающего менеджера
     * @param date дата, на которую должно действовать замещение
     */
    public ReplacementsFilter(long managerId, long assistanceId, Date date)
    {
        this.managerId = managerId;
        this.assistanceId = assistanceId;
        this.date = date;
    }

    /**
     * Идентификатор замещаемого менеджера
     */
    public long getManagerId()
    {
        return managerId;
    }

    /**
     * Идентификатор замещаемого менеджера
     */
    public void setManagerId(long managerId)
    {
        this.managerId = managerId;
    }

    /**
     * Идентификатор замещающего менеджера
     */
    public long getAssistanceId()
    {
        return assistanceId;
    }

    /**
     * Идентификатор замещающего менеджера
     */
    public void setAssistanceId(long assistanceId)
    {
        this.assistanceId = assistanceId;
    }

    /**
     * Дата действия замещения
     */
    public Date getDate()
    {
        return date;
    }

    /**
     * Дата действия замещения
     */
    public void setDate(Date date)
    {
        this.date = date;
    }

    /**
     * Дата действия замещения
     */
    public java.util.Date getDateAsUtilDate()
    {
        return date;
    }

    /**
     * Дата действия замещения
     */
    public void setDateAsUtilDate(java.util.Date date)
    {
        this.date = date == null ? null : new Date(date.getTime());
    }

    @Override
    public String toString()
    {
        return "ReplacementsFilter{" +
               "managerId=" + managerId +
               ", assistanceId=" + assistanceId +
               ", date=" + date +
               '}';
    }
}
